【问题标题】:Create Application with Authenticates against O365 Azure AD with OpenIdConnect使用 OpenIdConnect 创建对 O365 Azure AD 进行身份验证的应用程序
【发布时间】:2017-02-26 13:08:54
【问题描述】:

我正在创建一个用于 Office 365 帐户的应用程序(将是多租户)。我希望使用 OpenID Connect 进行身份验证。我不需要正常的 Microsoft 帐户。

我尝试在以下位置创建应用程序: https://portal.azure.com -> Azure Active Directory -> 应用注册

还有: https://manage.windowsazure.com -> Active Directory -> 应用程序

这些似乎不适用于 OpenId Connect。

在以下位置创建应用: https://apps.dev.microsoft.com

为 OpenId Connect 工作过。

有人可以帮忙建议一下吗:

  1. 这些不同的 URL 有什么区别?
  2. 是否可以通过在 Azure 站点之一上注册的应用程序运行 OpenID Connect,以便集中我的所有 Azure 内容?

【问题讨论】:

  • 在 Azure AD 中注册的应用,无论您使用哪个门户注册,都支持 OpenID Connect。你能分享一下不工作的代码,以及你收到的具体错误信息吗?
  • 此 API 版本不支持应用程序“11111111-1111-1111-1111-111111111111”。

标签: office365 azure-active-directory openid-connect


【解决方案1】:

当您在 https://portal.azure.com 中创建新应用时,您的本地租户中没有为您创建服务主体。当您向您的应用发出第一个授权请求时,将在您的本地 AD 租户中创建服务主体。请参阅http://www.cloudidentity.com/blog/2016/10/04/provision-an-app-created-on-portal-azure-com-in-your-own-tenant/ 了解更多信息。

如果您使用经典门户创建应用程序,则会同时创建应用程序对象和服务主体。

为了验证您的问题,我使用现代门户 https://portal.azure.com 创建了一个新应用并打开了

GET https://login.microsoftonline.com/{tenant}/oauth2/authorize?
client_id={application_id}
&response_type=id_token
&redirect_uri=http%3A%2F%2Flocalhost%2F
&response_mode=form_post
&scope=openid
&state=12345
&nonce=7362CAEA-9CA5-4B43-9BA3-34D7C303EBA7

在浏览器中,同时在后台运行提琴手。

注意:将 {tenant}{application_id}redirect_uri 替换为您的 Azure AD 租户 ID (guid) 和您的应用程序 ID(也是一个 guid)。 statenonce 是必需的,但可以有任何值。

当您在浏览器中打开 URL 时,它会首先要求用户同意该应用,如果成功则使用 id_token 回发到 redirect_uri。

有关执行 OpenID Connect 请求的更多信息,请参阅 https://azure.microsoft.com/en-us/documentation/articles/active-directory-protocols-openid-connect-code/

您还可以使用https://apps.dev.microsoft.com 创建新应用。如果您想利用 v2.0 端点和身份验证协议,您应该使用此页面注册新应用程序。请参阅https://azure.microsoft.com/en-us/documentation/articles/active-directory-v2-limitations/ 了解更多信息。

【讨论】:

    【解决方案2】:

    目前,您需要选择两种不同的 OpenID Connect 端点。如果您不需要 Microsoft 帐户,我建议您在 portal.azure.com 上注册一个应用程序,并使用 https://login.microsoftonline.com/common/oauth2/authorize 端点来执行 OIDC。 aka.ms/aaddev 上有很好的协议文档和代码示例

    【讨论】:

    • 这正是我得到错误的原因,“此 API 版本不支持应用程序 '11111111-1111-1111-1111-111111111111'。”
    猜你喜欢
    • 2018-03-11
    • 2019-04-01
    • 1970-01-01
    • 2019-05-29
    • 2017-11-10
    • 2017-10-30
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    相关资源
    最近更新 更多