14 messaggi dal 14 marzo 2019
Ciao a tutti,

ho trovato molto interessante la guida proposta in questa pagina. Premetto di essere un newbie in quanto ad autenticazione e login.

Sto cercando di centralizzare il processo di login usando Active Directory in Azure, in particolare ho creato una "Web App / API" come descritto qui. Questa App dà la possibilità di settare i ruoli definendoli nel manifest, come mostrato qui, e richiede un tenant, un application ID, una url di callback, ed altro, come mostrato in questa immagine.

Seguendo la guida, nella seconda pagina ho visto che il valore dei vari "Claim" viene assegnato staticamente, mi chiedevo, è possibile farlo in maniera dinamica? Infatti il role mi arriverà dal manifest.

Dalla guida mi sembra di capire che il role venga assegnato in modo statico al claim, facendo:
 identity.AddClaim(new Claim(ClaimTypes.Role, "Member")); 

Potete aiutarmi?

Grazie mille :)
Modificato da mee il 15 marzo 2019 16:33 -
333 messaggi dal 05 novembre 2012
Ciao,

premetto che non ho esperienza diretta su Azure AD ma la riga di codice che riporti fa parte di un esempio a scopo illustrativo per far comprendere meglio la parte di autenticazione.

Con Asp Identity, a seconda dello scenario, i claim dell'utente (compresi i ruoli) sono valorizzati in automatico dalla libreria. Nel progetto web api che hai creato, hai già configurato la parte per Azure AD?

Cmq attendi anche la risposta di Moreno che in materia è sicuramente più preparato

/Ciao

Alessio
14 messaggi dal 14 marzo 2019
Ciao,

grazie per la risposta.
Nel progetto web api che hai creato, hai già configurato la parte per Azure AD?

Ho configurato il "manifest" come descritto nel link che ho riportato ad inizio discussione, e poi ho imposttao gli altri campi sempre come da esempio per poter lavorare con un progetto MVC .NET Core avviato da localhost.

Nella creazione dell'app MVC (.NET Core), nella scelta tra i vari tipi di autenticazione, mi è sembrata più vicina alle mie esigenze quella denominata "Individual user accounts", perché permette di specificare un "Application ID", una "Callback" ed un "Domain name", trovi un esempio qui.

Grazie
333 messaggi dal 05 novembre 2012
Ciao,

nell'esempio che hai indicato sei arrivato fino in fondo? hai fatto il test?

Se la risposta è affermativa, sostituisci la action Get del controller Values con questo

// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
    IEnumerable<Claim> claims = HttpContext.User.Claims;
    return claims.Select(claim => $"Type: '{claim.Type}' - Value: '{claim.Value}'").ToList();
}


/Ciao

Alessio
14 messaggi dal 14 marzo 2019
Ciao,

grazie per la risposta.

Sono riuscito a configurare Azure Active Directory partendo con un nuovo progetto MVC .Net Core ed è stato estremamente semplice far funzionare tutto.
Infatti, in fase di creazione ho scelto "Change Authentication" (come mostrato qui), e di impostare "Work and School account", a questo punto ho specificato il mio dominio, sostanzialmente quello del tenant in uso, ed il wizard ha configurato tutto in automatico, creando direttamente una nuova app lato Azure denominata con il "nome del progetto" nella mia soluzione.

A questo punto è stato necessario configurare il manifest per definire dei ruoli (come spiegato in apertura della discussione), e sempre in Azure creare dei "gruppi", per poi assegnargli degli utenti (come spiegato qui).
L'app permette anche di gestire eventuali utenti "deafult" che si loggano usando il proprio indirizzo email (es. gmail.com), diverso da quello del dominio (tenant). In questo caso è sufficiente gestire cosa possono fare gli utenti "default" usando l'attributo "Authorize" come avete spiegato nella guida.

Nel controller mi è stato possibile recuperare i ruoli in automatico, sia usando l'attributo "Authorize" sulle "Action", sia usando il vostro snippet di codice:

// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
    IEnumerable<Claim> claims = HttpContext.User.Claims;
    return claims.Select(claim => $"Type: '{claim.Type}' - Value: '{claim.Value}'").ToList();
}


Credo possa essere considerato risolto il thread.

Grazie :)
333 messaggi dal 05 novembre 2012
Grazie :)

 Prego

/Ciao

Alessio

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.