Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
MSAL, yapılandırmada belirtilmemişse authority değerindeki kiracıyı 'common' olarak ayarladığından, uygulamanız varsayılan olarak çok kiracılı desteğe sahiptir. Bu, herhangi bir Microsoft hesabının uygulamanızda kimlik doğrulaması yapabilmesini sağlar. Çok kiracılı çalışmayla ilgilenmiyorsanız, aşağıda gösterildiği gibi, app.module.ts içinde MSAL örneğini oluştururken authority yapılandırma özelliğini ayarlamanız gerekir.
@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 {}
Çok kiracılı kimlik doğrulamasına izin veriyorsanız ve tüm Microsoft hesabı kullanıcıların uygulamanızı kullanmasına izin vermek istemiyorsanız, belirteç verenleri yalnızca oturum açmasına izin verilen kiracılara filtrelemek için kendi yönteminizi sağlamanız gerekir.
Kiracıyı değiştirme
Kiracı, aşağıda gösterildiği gibi ilgili bileşende yeni bir MSAL örneği oluşturularak dinamik olarak da ayarlanabilir.
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'
}
});
}
Dinamik kimlik doğrulama isteği
Varsayılan olarak MsalGuard ve MsalInterceptor, yapılandırmada ayarlanan statik özellikleri kullanır. Her ikisi de için authRequestbir yöntemiyle yapılandırılabilir ve kimlik doğrulaması için kullanılan parametrelerin dinamik olarak değiştirilmesine olanak sağlar.
MsalInterceptor - dinamik kimlik doğrulama isteği (çoklu kiracı belirteçleri)
organizations veya common, kiracı olarak kullanılıyorsa tüm belirteçler kullanıcıların ana kiracısı için istenecektir. Ancak, istenen sonuç bu olmayabilir. Bir kullanıcı konuk olarak davet edilirse belirteçler yanlış yetkiliden olabilir.
authRequest
MsalInterceptorConfig içindeki öğesini bir yönteme ayarlamak, kimlik doğrulama isteğini dinamik olarak değiştirmenize olanak tanır. Örneğin, konuk kullanıcıları kullanırken yetkiyi hesabın ana kiracısına göre ayarlayabilirsiniz.
üzerindeki authRequest özellikler değiştirilebilir, ancak her zaman aşağıdakine benzer şekilde originalAuthRequest genişletilmelidir:
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
}
]
});