Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az alkalmazás alapértelmezés szerint támogatja a több-bérlős működést, mivel az MSAL a hitelesítési végpontban a bérlőt „common” értékre állítja, ha az nincs megadva a konfigurációban. Ez lehetővé teszi, hogy bármely Microsoft-fiók hitelesítse magát az alkalmazásban. Ha nincs szüksége több-bérlős működésre, akkor az alábbiak szerint be kell állítania a authority konfigurációs tulajdonságot, amikor példányosítja az MSAL-t a(z) app.module.ts elemben.
@NgModule({
imports: [
MsalModule.forRoot({ // MSAL Configuration
auth: {
clientId: 'CLIENT_ID_HERE',
authority: 'https://login.microsoftonline.com/TENANT_ID_HERE',
redirectUri: 'http://localhost:4200',
postLogoutRedirectUri: 'http://localhost:4200'
},
// Additional configuration here
});
]
})
export class AppModule {}
Ha engedélyezi a több-bérlős hitelesítést, és nem szeretné engedélyezni, hogy minden Microsoft-fiók felhasználó használja az alkalmazást, saját módszert kell biztosítania a jogkivonat-kiállítók szűrésére csak azokra a bérlőkre, akik bejelentkezhetnek.
A bérlő módosítása
A bérlő dinamikusan is beállítható az MSAL egy új példányának a megfelelő komponensben történő létrehozásával, az alábbiak szerint.
import { PublicClientApplication } from '@azure/msal-browser';
import { MsalService } from '@azure/msal-angular';
@Component({})
export class AppComponent implements OnInit {
constructor(
private authService: MsalService
) {}
ngOnInit(): void {
this.authService.instance = new PublicClientApplication({
auth: {
clientId: 'CLIENT_ID_HERE',
authority: 'https://login.microsoftonline.com/TENANT_ID_HERE',
redirectUri: 'http://localhost:4200',
postLogoutRedirectUri: 'http://localhost:4200'
}
});
}
Dinamikus hitelesítési kérelem
Alapértelmezés szerint az MsalGuard és az MsalInterceptor a konfigurációban beállított statikus tulajdonságokat használja. Mindkettő konfigurálható olyan metódussal authRequestis, amely lehetővé teszi a hitelesítéshez használt paraméterek dinamikus módosítását.
MsalInterceptor – dinamikus hitelesítési kérés (több-bérlős tokenek)
Ha a bérlőként a(z) organizations vagy a(z) common értéket használják, a rendszer az összes tokent a felhasználók saját bérlőjéhez fogja lekérni. Előfordulhat azonban, hogy ez nem a kívánt eredmény. Ha egy felhasználót vendégként hívnak meg, előfordulhat, hogy a tokenek nem a megfelelő jogosultságkibocsátótól származnak.
authRequest Az MsalInterceptorConfig metódusra állításával dinamikusan módosíthatja a hitelesítési kérelmet. Például vendégfelhasználók használatakor beállíthatja a hitelesítési szolgáltatót a fiók saját bérlője alapján.
A authRequest tulajdonságai módosíthatók, de mindig a originalAuthRequest elemet kell kiterjeszteni, az alábbiak szerint:
export function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {
const protectedResourceMap = new Map<string, Array<string>>();
protectedResourceMap.set("https://graph.microsoft.com/v1.0/me", ["user.read"]);
return {
interactionType: InteractionType.Popup,
protectedResourceMap,
authRequest: (msalService, httpReq, originalAuthRequest) => {
return {
...originalAuthRequest,
authority: `https://login.microsoftonline.com/${originalAuthRequest.account?.tenantId ?? 'organizations'}`
};
}
};
}
...
@NgModule({
declarations: [...],
imports: [...],
providers: [
...
{
provide: MSAL_INTERCEPTOR_CONFIG,
useFactory: MSALInterceptorConfigFactory
}
]
});