3

我正試圖發現哪些擴展屬性可用於我的應用程序。我本來按照本指南得到擴展屬性:使用Azure AD獲取擴展屬性B2C Graph API不起作用

https://azure.microsoft.com/en-us/documentation/articles/active-directory-b2c-devquickstarts-graph-dotnet/#use-custom-attributes

但是,這只是返回以下JSON:

{ 
    "odata.metadata": "https://graph.windows.net/screenmediatestb2c.onmicrosoft.com/$metadata#directoryObjects/Microsoft.DirectoryServices.ExtensionProperty", 
    "value": [] 
} 

我也試圖用郵差常規的HTTP請求,要做到這一點,但具有完全相同的結果。我可以進行身份​​驗證和加載應用程序,用戶,用戶組等,但它不返回任何我的自定義屬性,其中我有2

我使用的端點是:

https://graph.windows.net/[tenant]/applications/[application對象ID]/extensionProperties?API版本= 1.6

沒有人有任何知道我做錯了嗎?

+0

您在使用來自github的B2C-GraphAPI-DotNet示例?我面臨同樣的問題,我注意到運行'B2C Get-B2C-Application'會在filter = displayName eq'b2c-extensions-app''的請求末尾添加一個過濾器。我試圖通過應用程序註冊刀片將傳遞給'B2C Get-Extension-Attribute'的objectid更改爲我的已命名應用程序,但再次,自定義屬性列表爲空。你能找出什麼是錯的? – ChrisO

回答

3

我只是在https://azure.microsoft.com/en-us/documentation/articles/active-directory-b2c-reference-custom-attr/此頁面底部看到一個聲明。看起來這可能是我們的問題。

有自定義屬性的一個已知的限制。它僅在首次用於任何策略時創建 ,而不是在您將其添加到 用戶屬性列表中時創建。

+0

事實上,我在我的政策的註冊頁面上啓用了我的自定義屬性。在輸入自定義屬性的值時註冊測試用戶。現在,當我檢查你提到的端點'https://graph.windows。net/[tenant]/applications/[application object ID]/extensionProperties?api-version = 1.6',則顯示自定義屬性。 – ChrisO

+1

Aw geez。我不使用Azure託管的註冊頁面,而是使用API​​來完成這一切。我想我可以繼續並通過託管頁面進行快速測試,只是爲了創建該屬性,但這似乎很瘋狂,你必須這樣做。 – gfyans

+0

我無法得到這個工作。每次我提交註冊表單時,我都會收到400個錯誤的請求。雖然我確信這是「解決方案」,但在我有機會驗證它之前,我不能將其標記爲這樣。我在註冊政策中啓用的唯一字段是我的新自定義字段。顯然它顯示電子郵件(+驗證),密碼和確認密碼字段。 – gfyans

0

有在本教程中附帶的GitHub庫中的錯誤: https://azure.microsoft.com/en-us/documentation/articles/active-directory-b2c-devquickstarts-graph-dotnet/#use-custom-attributes

取消胸圍你的球通過改變Program.GetB2CExtensionApplication(...)來:

private static void GetB2CExtensionApplication(string[] args) 
{ 
    object formatted = JsonConvert.DeserializeObject(client. 
     GetApplications("$filter=startswith(displayName, 'b2c-extensions-app')").Result); 
    Console.ForegroundColor = ConsoleColor.White; 
    Console.WriteLine(JsonConvert.SerializeObject(formatted, Formatting.Indented)); 
} 

不是檢查displayName是否等於'b2c-extensions-app',而是檢查它是否以'b2c-extensions-app'開頭。他們在更高版本的Azure AD B2C中更改了應用程序的名稱。

當您使用返回的ID獲取擴展名時,您會看到自定義屬性名稱前面帶有一個Guid,這就是爲什麼我們無法訪問它: 例如。 extension_10ecdccd92c446829a399e68ed758978_MyCustomAttribute

的獲取,B2C,應用正確的GET URL應該是:

GET https://graph.windows.net/{Tenant}/applications?api-version=1.6&$filter=startswith(displayName,'b2c-extensions-app') 

而對於擴展屬性(自定義Atttributes)的GET URL應該是:

GET https://graph.windows.net/{Tenant}/applications/{ObjectID}/extensionProperties?api-version=1.6 
相關問題