Sdílet prostřednictvím


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

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: