Kurz: Použití řízení přístupu na základě role v rozhraní .NET MAUI
Tento kurz ukazuje, jak přidat role aplikací to.NET uživatelské rozhraní multiplatformních aplikací (.NET MAUI) a přijímat je v tokenu ID.
V tomto kurzu se naučíte:
- Přístup k rolím v tokenu ID
Požadavky
- Kurz: Přihlášení uživatelů v aplikaci prostředí .NET MAUI
- Použití řízení přístupu na základě role (RBAC) pro aplikace
Příjem deklarací identit skupin a rolí v .NET MAUI
Jakmile nakonfigurujete tenanta zákazníka, můžete v klientské aplikaci načíst své role a deklarace identity skupin. Role a deklarace identity skupin se nacházejí v tokenu ID i v přístupovém tokenu. Přístupové tokeny se ověřují pouze ve webových rozhraních API, pro která klient získal. Klient by neměl ověřovat přístupové tokeny.
Rozhraní .NET MAUI musí zkontrolovat deklarace identity rolí aplikací v tokenu ID, aby bylo možné implementovat autorizaci na straně klienta.
V této sérii kurzů jste vytvořili aplikaci .NET MAUI, ve které jste vytvořili ClaimsView.xaml.cs pro zpracování ClaimsView
dat. V tomto souboru zkontrolujeme obsah tokenů ID. Hodnota deklarace identity rolí je vrácena v následujícím fragmentu kódu:
Pokud chcete získat přístup k deklaraci identity role, můžete fragment kódu upravit následujícím způsobem:
var idToken = PublicClientSingleton.Instance.MSALClientHelper.AuthResult.IdToken;
var handler = new JwtSecurityTokenHandler();
var token = handler.ReadJwtToken(idToken);
// Get the role claim value
var roleClaim = token.Claims.FirstOrDefault(c => c.Type == "roles")?.Value;
if (!string.IsNullOrEmpty(roleClaim))
{
// If the role claim exists, add it to the IdTokenClaims
IdTokenClaims = new List<string> { roleClaim };
}
else
{
// If the role claim doesn't exist, add a message indicating that no role claim was found
IdTokenClaims = new List<string> { "No role claim found in ID token" };
}
Claims.ItemsSource = IdTokenClaims;
Poznámka:
Pokud chcete přečíst token ID, musíte balíček nainstalovat System.IdentityModel.Tokens.Jwt
.
Pokud přiřadíte uživatele k více rolím, řetězec rolí obsahuje všechny role oddělené čárkou, například Orders.Manager, Store.Manager,...
. Ujistěte se, že sestavíte aplikaci, která bude zpracovávat následující podmínky:
- Absence deklarací identity rolí v tokenu
- Uživatel nebyl přiřazen k žádné roli.
- Více hodnot v deklaraci identity rolí při přiřazování uživatele k více rolím
Když pro aplikaci definujete role aplikací, je vaší zodpovědností implementovat autorizační logiku pro tyto role.
Další kroky
Další informace o deklarací identity skupin a informovaná rozhodnutí týkající se používání rolí nebo skupin aplikací najdete v těchto tématech:
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro