हम Azure परिनियोजन सेट करने के लिए PowerShell का उपयोग करते हैं, जो अन्य Azure संसाधनों के साथ, एक ऐप पंजीकरण बनाता है।

सरलीकृत कोड इस प्रकार है:

$appRegistration = New-AzADApplication `
    -DisplayName $applicationName `
    -HomePage "$webAppUrl" `
    -IdentifierUris "api://$webAppName";

इसमें हम रीडायरेक्ट यूरिस जोड़ते हैं, जैसे:

if ($redirectUris -notcontains "$webAppUrl") {
    $redirectUris.Add("$webAppUrl");    
    Write-Host "Adding $webAppUrl to redirect URIs";
}

if ($redirectUris -notcontains "$webAppUrl/aad-auth") {
    $redirectUris.Add("$webAppUrl/aad-auth");
    Write-Host "Adding $webAppUrl/aad-auth to redirect URIs";
}

Update-AzADApplication `
    -ApplicationId $applicationId `
    -IdentifierUris "api://$applicationId" `
    -ReplyUrl $redirectUris | Out-Null

यह बहुत अच्छा काम करता है, और "वेब" प्लेटफॉर्म के साथ एक ऐप पंजीकरण बनाया जाता है। यह इस तरह दिख रहा है:

App registration showing Web platform

मेरा प्रश्न यह है कि हम इन रीडायरेक्ट यूरिस को पावरशेल का उपयोग करके "एसपीए" प्लेटफॉर्म के तहत कैसे प्राप्त कर सकते हैं? जैसा कि नीचे दी गई छवि में है, जो पोर्टल पर मैन्युअल रूप से किया गया था।

App registration showing SPA platform

3
floatingfrisbee 12 जिंदा 2021, 23:36

2 जवाब

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

ऐसा लगता है कि ऐसा करने के लिए बिल्ट-इन कमांड में कोई सुविधा नहीं है, आप MS ग्राफ़ को कॉल कर सकते हैं - Update application सीधे पावरशेल में।

आप मेरे लिए काम के नीचे दिए गए नमूने का उल्लेख कर सकते हैं, सुनिश्चित करें कि Az में Connect-AzAccount के माध्यम से लॉग इन किया गया आपका सेवा प्रिंसिपल/उपयोगकर्ता खाता एपीआई को कॉल करने की अनुमति है।

$objectId = "xxxxxxxxxxxxxxxx"
$redirectUris = @()
$webAppUrl = "https://joyweb.azurewebsites.net"
if ($redirectUris -notcontains "$webAppUrl") {
    $redirectUris += "$webAppUrl"   
    Write-Host "Adding $webAppUrl to redirect URIs";
}

if ($redirectUris -notcontains "$webAppUrl/aad-auth") {
    $redirectUris += "$webAppUrl/aad-auth"
    Write-Host "Adding $webAppUrl/aad-auth to redirect URIs";
}

$accesstoken = (Get-AzAccessToken -Resource "https://graph.microsoft.com/").Token
$header = @{
    'Content-Type' = 'application/json'
    'Authorization' = 'Bearer ' + $accesstoken
}
$body = @{
    'spa' = @{
        'redirectUris' = $redirectUris
    }
} | ConvertTo-Json

Invoke-RestMethod -Method Patch -Uri "https://graph.microsoft.com/v1.0/applications/$objectId" -Headers $header -Body $body

पोर्टल में चेक करें रिजल्ट:

enter image description here

3
Joy Wang-MSFT 13 जिंदा 2021, 10:06

एक समान थ्रेड था जहां कोई व्यक्ति प्रोग्राम के रूप में रीडायरेक्ट URI को जोड़ने का प्रयास कर रहा था। एसपीए और ऐसा नहीं कर सका क्योंकि यह वेब सेक्शन के तहत डिफॉल्ट करता है।

वह Azure CLI के साथ ग्राफ़ API में पोस्ट करके इसे हल करने में सक्षम था:

az rest `
    --method PATCH `
    --uri 'https://graph.microsoft.com/v1.0/applications/{id}' `
    --headers 'Content-Type=application/json' `
    --body "{spa:{redirectUris:['http://localhost:3000']}}"
3
Marilee Turscak - MSFT 13 जिंदा 2021, 01:22