我有一个Azure AD应用程序,并生成了两个客户端机密。我可以使用每个秘密(通过client_credentials
授权)获得JWT访问令牌,但是我是否也可以从JWT令牌中看到它被请求的客户端密钥?
如果我检查JWT令牌,我会回来,一些有效载荷字段总是相同的(aud
,iss
等),有些总是不同的(iat
,{{1 }},nbf
等)但据我所知,没有信息可以识别所使用的客户端密码。
这是一个示例有效负载:
aio
相关说明:{
"aud": "https://graph.microsoft.com",
"iss": "https://sts.windows.net/e402c5fb-58e9-48c3-b567-741c4cef0b96/",
"iat": 1516886787,
"nbf": 1516886787,
"exp": 1516890687,
"aio": "Y2NgYEjJqF0stqv73u41a6ZmxPEvBgA=",
"app_displayname": "TravelAgencies",
"appid": "ee8cf944-bf6f-42cf-ae30-6060412416a1",
"appidacr": "2",
"e_exp": 262800,
"idp": "https://sts.windows.net/e402c5fb-58e9-48c3-b567-741c4cef0b96/",
"oid": "bc430bc6-d9fb-4fa0-87e5-8b8803fcb222",
"sub": "bc430bc6-d9fb-4fa0-87e5-8b8803fcb222",
"tid": "e402c5fb-58e9-48c3-b567-741c4cef0b96",
"uti": "1TgusyfGtECjErT0Kv4PAA",
"ver": "1.0"
}
,aio
和e_exp
字段是什么?我无法找到有关它们的任何信息。
答案 0 :(得分:2)
您无法查看已发出令牌的客户端密钥。询问它是哪个秘密的原因是什么?
关于提供的声明 - 您可以查看here和here不同声明的含义。例如,REQUEST_SYNC
,iat
只是日期 - 发出令牌时的有效期和有效期开始时间。
对于某些声明,例如nbf
,没有文档。但是没有声明要告诉你使用了哪个秘密。
答案 1 :(得分:1)
来自https://docs.microsoft.com/en-us/azure/active-directory/develop/id-tokens
aio
Azure AD 用于记录数据以供令牌重用的内部声明。应该被忽略。