Muitas empresas estão a utilizar Microsoft 365 (antigo Office 365). Para além de fornecer acesso a aplicações Office, a Microsoft fornece um Active Directory baseado no Azure, permitindo aos utilizadores entrar para aceder a serviços como o Microsoft Sharepoint ou OneDrive utilizando um Web Browser.
Todos os serviços Microsoft utilizam o mesmo Single Sign-On, com base no endereço de correio electrónico. A partir de 4D v19 R6, 4D NetKit permite-lhe aderir a este conceito, permitindo aos utilizadores iniciar sessão na sua aplicação utilizando as suas credenciais habituais da empresa.
Além de permitir Single Sign-On, permitirá recuperar informações para o utilizador autenticado, tais como e-mail, departamento, e número de telefone. Se o administrador o permitir, poderá mesmo recuperar tais informações sobre colegas da mesma empresa.
Vamos ver como funciona.
Primeiro, para aceder à informação de um utilizador, terá de obter acesso em seu nome e utilizar o New OAuth2 provider comando para criar o seu fornecedor de OAuth2:
$param:=New object()
$param.name:="Microsoft"
$param.permission:="signedIn"
$param.clientId:="XXX"
$param.redirectURI:="http://127.0.0.1:50993/authorize/"
$param.scope:="https://graph.microsoft.com/.default"
// Create new OAuth2 object
$tokenProvider:=New OAuth2 provider($param)
Quando o seu fornecedor de OAuth2 estiver pronto, use o comando New Office365 provider comando para instanciar um objecto que irá gerir o acesso à sua conta Microsoft 365 através da API gráfica Microsoft:
var $Office365 : cs.NetKit.Office365Provider
$Office365:=New Office365 provider($tokenProvider)
informação do utilizador
Pode obter a informação do utilizador como displayName, givenName, e muito mais.
Se estiver ligado no modo Sign In, pode obter a informação actual do utilizador:
$currentUser:=$Office365.user.getCurrent()
//$currentUser=
//{displayName:My Name,givenName:Name,mail:myname@mycompany.com,...}
Se pertence à conta “trabalho ou escola” do Azure AD, pode aceder à informação de um utilizador específico da sua organização:
$user:=$Office365.user.get("myname@mycompany.com")
ou aceder à lista de todos os utilizadores da sua organização:
$users:=$Office365.user.list()
Consulte a documentação para mais detalhes, e não hesite em partilhar connosco a sua experiência no fórum 4D.