Azure Active Directory 是不是具有 OAuth/OpenID Connect 令牌自检终结点?

Posted

技术标签:

【中文标题】Azure Active Directory 是不是具有 OAuth/OpenID Connect 令牌自检终结点?【英文标题】:Does Azure Active Directory have an OAuth/OpenID Connect token introspection endpoint?Azure Active Directory 是否具有 OAuth/OpenID Connect 令牌自检终结点? 【发布时间】:2017-09-08 18:40:23 【问题描述】:

Azure Active Directory 是否具有用于验证 OpenID Connect(或 OAuth)访问令牌的自省端点(如 RFC7662 中所定义)?

【问题讨论】:

【参考方案1】:

没有。您可以通过 OpenID Provider Configuration 为 Azure Active Directory 检查支持的所有端点。

如果您对 Azure AD 有任何想法或反馈,可以尝试从UserVoice:Azure Active Directory 提交。

特别是你可以投票Introspection endpoint for Azure Active Directory Suggestion

【讨论】:

【参考方案2】:

无自省端点

Azure AD 没有自省终结点。

但是,根据您要实现的目标,如果没有该端点,它可能仍然是可能的。

验证访问令牌

使用令牌调用userinfo_endpoint 以查看它是否仍然有效。例如

GET /oidc/userinfo HTTP/1.1
Host: graph.microsoft.com
Authorization: Bearer <access token>

如果调用返回 200,则访问令牌有效。如果返回401,则无效。

获取有关/从访问令牌的信息

有 2 种类型的访问令牌:自包含或占位符(有关详细信息,请参阅 RFC6749 Section 1.4)。 Azure AD 的访问令牌是 JWTs,并且是自包含的。

您可以通过解码访问令牌来获取到期信息、AD 应用名称、租户信息、用户信息等等。

Azure AD 访问令牌的 JWT 负载如下所示:


  "aud": "00000000-0000-0000-0000-000000000000",
  "iss": "https://sts.windows.net/<tenant_id>/",
  "iat": 1637179385,
  "nbf": 1637179385,
  "exp": 1637183923,
  "acct": 0,
  "acr": "1",
  "aio": "<base64_string>",
  "amr": [
    "pwd",
    "mfa"
  ],
  "app_displayname": "<app_registration_display_name>",
  "appid": "<app_id>",
  "appidacr": "1",
  "family_name": "<user_family_name>",
  "given_name": "<user_given_name>",
  "idtyp": "user",
  "ipaddr": "<user_ip>",
  "name": "<user_name>",
  "oid": "<uuid>",
  "onprem_sid": "<on-premises_sid_of_user>",
  "platf": "8",
  "puid": "<hex_id>",
  "rh": "<?>",
  "scp": "email openid profile",
  "signin_state": [
    "kmsi"
  ],
  "sub": "<user_subscriber_identifier>",
  "tenant_region_scope": "NA",
  "tid": "<tenant_id>",
  "unique_name": "<user_email_or_unique_identifier>",
  "upn": "<user_email>",
  "uti": "<?>",
  "ver": "1.0",
  "wids": [
    "<uuid>"
  ],
  "xms_st": 
    "sub": "<?>"
  ,
  "xms_tcdt": <?>

【讨论】:

以上是关于Azure Active Directory 是不是具有 OAuth/OpenID Connect 令牌自检终结点?的主要内容,如果未能解决你的问题,请参考以下文章

Azure B2C 来宾(外部 Azure Active Directory)X 成员(联合 Azure Active Directory)

Azure-Azure Active Directory(AAD)

text Azure Active Directory身份验证

Azure *** 客户端 Azure Active Directory 身份验证

用于查询Azure Active Directory的Azure服务

Active Directory 从浏览器访问 Azure 存储