【问题标题】:ADAL invalid redirect uriADAL 无效的重定向 uri
【发布时间】:2016-01-20 13:45:12
【问题描述】:

注意:我正在使用微软最新 adal 的实验性预发布版

我正试图让我的身份提供者在移动应用程序上工作。到目前为止,我已经能够加载我的身份提供者并设法显示登录页面(facebook 除外)。

问题是,每当我实际尝试登录时,我都会在“无效的重定向 uri”表单中收到一些错误。

例如,Google 会说:“请求中的重定向 URI:https://login.microsoftonline.com/... 与注册的重定向 URI 不匹配。

Facebook 将显示:“应用程序配置不允许给定 URL:应用程序的设置不允许一个或多个给定 URL。它必须与网站 URL 或 Canvas URL 匹配,或者域必须是子域应用程序的域之一。”

据我了解,您实际上不再需要向不同的身份提供商注册移动应用程序,因为 Azure 位于您和他们之间。 Azure 处理连接、获取您的令牌并使用它来识别您。然后它应该向您返回一组“天蓝色令牌”。

据我所知,使用的重定向 URI 已在门户上注册,因为我能够首先加载身份提供者? 更不用说它似乎是许多应用程序使用的默认 URL:urn:ietf:wg:oauth:2.0:oob,它只是告诉它将它返回到一些非基于浏览器的应用程序?

这是我用来实际登录/注册的代码:

private static String AUTHORITY_URL = "https://login.microsoftonline.com/<directory>/oauth2/authorize/";
    private static String CLIENT_ID = "my_client_id";
    private static String[] SCOPES = { "my_client_id" };
    private static String[] ADDITIONAL_SCOPES = { "" };
 private static String REDIRECT_URL = "urn:ietf:wg:oauth:2.0:oob";
    private static String CORRELATION_ID = "";
    private static String USER_HINT = "";
    private static String EXTRA_QP = "nux=1";
    private static String FB_POLICY = "B2C_1_<your policy>";
    private static String EMAIL_SIGNIN_POLICY = "B2C_1_SignIn";
    private static String EMAIL_SIGNUP_POLICY = "B2C_1_SignUp";

public async Task<AuthenticationResult> Login(IPlatformParameters parameters, bool isSignIn)
    {
        var authContext = new AuthenticationContext(AUTHORITY_URL, new TokenCache());

        if (CORRELATION_ID != null &&
                CORRELATION_ID.Trim().Length != 0)
        {
            authContext.CorrelationId = Guid.Parse(CORRELATION_ID);
        }

        String policy = "";
        if (isSignIn)
            policy = EMAIL_SIGNIN_POLICY;
        else
            policy = EMAIL_SIGNUP_POLICY;

        return await authContext.AcquireTokenAsync(SCOPES, ADDITIONAL_SCOPES, CLIENT_ID, new Uri(REDIRECT_URL), parameters, UserIdentifier.AnyUser, EXTRA_QP, policy);            

    }

Microsoft 的文档并没有真正的帮助,因为大多数文档要么是空的(实际上还没有输入),要么是一年多前的一些帮助主题。这些东西很新,所以文档似乎很难找到。

那么,亲爱的 stackoverflow 人,我错过了什么?为什么在azure门户网站上注册重定向url无效?如果重定向 URI 无效,为什么我首先要检索身份提供者?

【问题讨论】:

    标签: xamarin azure-active-directory adal


    【解决方案1】:

    为什么经过几个小时的搜索后我似乎无法找到解决方案,但是当我在这里发布问题时,我不知何故在几分钟内就找到了答案......

    这是一个非常愚蠢的错误,我的一位同事给我发了错误的权威网址。 有趣的是,加载我们在门户网站上安装的身份提供程序是正确的“足够”,但不足以处理实际登录或登录。

    我最初使用:

    https://login.microsoftonline.com/<tenant_id>/oauth2/authorize/
    

    它应该在哪里:

    https://login.microsoftonline.com/<tenant_id>/oauth2/v2.0/authorize
    

    你看到那个小小的“v2.0”了吗?是的,那个小混蛋是造成所有痛苦的原因......

    【讨论】:

    • 刚刚开始同样的练习。很高兴知道需要注意的项目。
    猜你喜欢
    • 2022-08-08
    • 2014-10-03
    • 1970-01-01
    • 2019-11-18
    • 2021-02-07
    • 2021-03-12
    • 2020-07-16
    • 2016-12-22
    • 1970-01-01
    相关资源
    最近更新 更多