我們使用OAuth 2.0從Azure AD獲取JWT令牌。在我們的應用程序中,我們使用'upn'聲明的值來確定關聯的內部用戶名。JWT聲稱來自Azure AD令牌的東西可以安全地用於用戶映射嗎?
的Azure AD Token Reference記錄了UPN權利要求作爲「用戶主體名稱」,這據我明白的是以下的地址規格的格式(即,用戶@域)用戶名。這對在Azure AD租戶內創建的用戶很有效。但令我驚訝的是,upn索賠似乎已經消失,如果認證的用戶從一個不同的AD同步。這種行爲似乎沒有記錄在任何地方。
- 我在哪裏可以找到當UPN是保證在令牌上的文件?
- 什麼是我可以使用的可靠替代索賠?最好聲明保證爲「用戶/域名」形式,因爲這與我們的模型最匹配。我已經考慮了以下幾點:
- UNIQUE_NAME:我只看到這等於UPN,但我不知道它從何而來。令人困惑的是,token reference說:這個值是而不是保證在租戶內是唯一的,並被設計爲僅用於顯示目的。(重點煤礦)
- 電子郵件:這似乎太等於UPN,但同樣,它在哪兒從來源?在管理門戶中,我曾嘗試在與用戶相關的每個電子郵件相關字段中放入不同的值,但似乎沒有一個值得傳播到此聲明中。因此它看起來這個字段是實際上不是電子郵件。
我想絕對確保我們的應用程序將能夠處理由Azure的AD發佈的所有令牌,所以我很猶豫使用任何上述權利的,除非我有一些文件,說明其實際語義。
謝謝你的回答。我認爲沒有關於** unique_name **和** email **的語義的文檔,那麼?缺乏唯一性不一定是問題(多個AD主體仍然可以在我們的應用程序中識別相同的用戶)。 –