मेरे पास ADB2C टेनेंट में एप्लिकेशन/संसाधन बनाने के लिए एक ऑटोमेशन स्क्रिप्ट है। हाल ही में मैं AzureADPreview के साथ एक परेशान करने वाली समस्या में भाग गया।

मूल रूप से मैं एक एप्लिकेशन बनाता हूं, मैं इसका सर्विस प्रिंसिपल बनाता हूं, फिर मैं इस एप्लिकेशन को भूमिकाएं सौंप रहा हूं। विशेष रूप से एक भूमिका जो मुझे समस्याएं पैदा कर रही है वह है: उपयोगकर्ता प्रशासक, या बेहतर कहा गया उपयोगकर्ता प्रशासक | उपयोगकर्ता खाता व्यवस्थापक।

इससे मेरा क्या मतलब है? मूल रूप से एक किरायेदार के लिए, cmdlet: Get-AzureADDirectoryRoleTemplate या तो उपयोगकर्ता व्यवस्थापक या उपयोगकर्ता खाता व्यवस्थापक देता है जो अजीब है।

यहाँ कोड है:

# Grant needed Service Principals Permissions
foreach ($displayName in $_.ServicePrincipal.ApplicationRoles) {
    $adDirectoryRole = Get-AzureADDirectoryRole | Where-Object { $_.displayName -eq $displayName }
    if ($null -eq $adDirectoryRole) {
        $adDirectoryRoleTemplate = Get-AzureADDirectoryRoleTemplate | Where-Object { $_.displayName -eq $displayName }
        Enable-AzureADDirectoryRole -RoleTemplateId $adDirectoryRoleTemplate.ObjectId | Out-Null
        $adDirectoryRole = Get-AzureADDirectoryRole | Where-Object { $_.displayName -eq $displayName }
    }

    Add-AzureADDirectoryRoleMember -ObjectId $adDirectoryRole.ObjectId -RefObjectId $servicePrincipal.ObjectId | Out-Null
}

लाइन Enable-AzureADDirectoryRole -RoleTemplateId $adDirectoryRoleTemplate.ObjectId | Out-Null कभी-कभी एक त्रुटि उत्पन्न करती है जब DisplayName उपयोगकर्ता खाता व्यवस्थापक नहीं होता है।

कृपया मुझे यह न बताएं कि Azure का API कोड इस तरह दिखता है:

if (rand() > 0.5f) { role.DisplayName = 'User Administrator'; }
else { role.DisplayName = 'User Account Administrator'; }

क्या हो रहा है? यह एक केस क्यों है? त्रुटि फेंक दी गई

Enable-AzureADDirectoryRole : Error occurred while executing ActivateDirectoryRole
Code: Request_BadRequest
Message: Could not resolve request to a valid role template. A valid value must be specified for 'displayName' or 'roleTemplateId'.
RequestId: 6bc26cc3-ce6d-41d0-abe0-2635d9897b75
DateTimeStamp: Thu, 14 Jan 2021 14:50:19 GMT
Details: PropertyName  - roleTemplateId, PropertyErrorCode  - PropertyRequired
HttpStatusCode: BadRequest
HttpStatusDescription: Bad Request
HttpResponseStatus: Completed

पीएस मॉड्यूल: 2.0.2.119 AzureADPreview

UPDATE

चूंकि बहुत सारी टिप्पणियों में बात नहीं है, मुझे लगता है कि मुझे इस मुद्दे पर जोर देने की जरूरत है।

Depending किरायेदार पर जब मैं ऊपर बताए गए प्रश्नों को करता हूं तो मुझे अलग-अलग परिणाम मिलते हैं। ऐसा बिल्कुल नहीं होना चाहिए, यह एक बग है। मैं नहीं जानता कि बग कहां है, Azure API में, PowerShell मॉड्यूल में, यह कुछ दिन पहले शुरू हुआ था। हमने कुछ नहीं बदला, इसलिए मैं Azure API को दोष दे रहा हूं।

मैं कुछ तस्वीरें संलग्न करने जा रहा हूं ताकि आप स्पष्ट रूप से देख सकें कि मुझे दो अलग-अलग किरायेदारों पर क्या परिणाम मिल रहे हैं। कृपया समझें कि मैंने 5 या अधिक किरायेदारों के साथ इसका परीक्षण किया है और यह यादृच्छिकता उनमें से प्रत्येक के लिए होती है।

कुछ रिटर्न User Administrator और कुछ रिटर्न User Account Administrator। यह मान उस विशेष टैनेंट के लिए परिनियोजित होने के बाद नहीं बदलता है। लेकिन परिनियोजन के समय, वह मान भिन्न होता है।

इन तस्वीरों पर एक नजर:

This is one tenant

This is another tenant

ये परिणाम विभिन्न किरायेदारों से प्राप्त होते हैं !!!

1
Garbem 14 जिंदा 2021, 18:15
$_.ServicePrincipal.ApplicationRoles क्या है? क्या आप और स्क्रिप्ट साझा कर सकते हैं? आप $_.ServicePrincipal.ApplicationRoles को स्वयं परिभाषित करते हैं या यह Azure का डेटा है?
 – 
Allen Wu
15 जिंदा 2021, 05:17
तार्किक रूप से कहें तो, आपको यहां User Account Administrator का उपयोग करना चाहिए। लेकिन मुझे नहीं पता कि आपका User Administrator कहां से आया है।
 – 
Allen Wu
15 जिंदा 2021, 05:18
$_.ServicePrincipal.ApplicationRoles मेरे द्वारा परिभाषित है, यह उस भूमिका का प्रदर्शन नाम है जो मुझे चाहिए। @AllenWu जैसा कि मैंने उल्लेख किया है, कुछ किरायेदारों में User Account Administrator भूमिका मौजूद नहीं है, लेकिन User Administrator करता है।
 – 
Garbem
15 जिंदा 2021, 11:34
मैंने कल 4-5 किरायेदारों की तरह इस मुद्दे की जांच की और यह एक संयोग की तरह है, मुझे या तो User Account Administrator या User Administrator मिलता है, जो कुछ ऐसा है जिसे स्वचालित करना मुश्किल है :)
 – 
Garbem
15 जिंदा 2021, 11:54
मैंने आपकी समस्या का समाधान नहीं किया, केवल User Account Administrator प्राप्त करें। और यह आधिकारिक दस्तावेज़ में भी User Account Administrator है। अधिक पुष्टि के लिए Azure समर्थन से संपर्क करें।
 – 
Allen Wu
18 जिंदा 2021, 09:18

1 उत्तर

सबसे बढ़िया उत्तर

Azure सपोर्ट के साथ बहुत आगे-पीछे होने के बाद, हम इस निष्कर्ष पर पहुंचे कि यह वास्तव में एक बग था। उन्होंने कुछ उपयोगकर्ता भूमिकाओं का नाम बदलने के बारे में एक ब्लॉग पोस्ट बनाया:

A 30-day notice announcing the proposed change was posted to the Message center in M365 Admin center in Message ID MC218295 as of July 2020 with information to customers to update their scripts by August 14, 2020.

अपडेट को जनवरी २० में अंतिम रूप दिया गया था और आज २९ जनवरी को मेरे सभी किरायेदारों का User Administrator भूमिका के लिए समान मूल्य है।

0
Garbem 29 जिंदा 2021, 19:53