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 身份验证