Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este guia de início rápido mostra como implementar o padrão de inicialização do cliente usado pelo wrapper .NET do MIP SDK para o Policy SDK em tempo de execução.
Observação
Qualquer aplicativo cliente que usa o SDK de Política de .NET MIP precisa das etapas neste início rápido. Conclua a configuração e configure o SDK do MIP antes de começar.
Pré-requisitos
Caso ainda não tenha feito isso, certifique-se de:
- Instalação e configuração do SDK do Microsoft Proteção de Informações (MIP). Conclua estas etapas antes deste início rápido.
- Opcionalmente:
- Examine o perfil e os objetos do mecanismo.
- Examine os conceitos de Autenticação.
Criar uma solução e um projeto do Visual Studio
Abra o Visual Studio 2022 ou posterior, selecione o menu Arquivo , Novo, Projeto.
- Selecione Console App (direcionado ao .NET 8 ou posterior).
- Forneça um nome e um local para o projeto.
Adicione os pacotes NuGet para o SDK de Política de MIP e o MSAL:
- Em Gerenciador de Soluções, clique com o botão direito do mouse no nó do projeto e selecione Gerenciar pacotes NuGet....
- Selecione Procurar, insira "Microsoft.InformationProtection" na caixa de pesquisa e instale o pacote Microsoft.InformationProtection.Policy .
- Pesquise e instale o Microsoft.Identity.Client.
Implementar um delegado de autenticação
Adicione uma nova classe chamada
AuthDelegateImplementation:using Microsoft.InformationProtection; using Microsoft.Identity.Client; public class AuthDelegateImplementation : IAuthDelegate { private ApplicationInfo _appInfo; private IPublicClientApplication _app; public AuthDelegateImplementation(ApplicationInfo appInfo) { _appInfo = appInfo; } public string AcquireToken(Identity identity, string authority, string resource, string claims) { var authorityUri = new Uri(authority); authority = string.Format("https://{0}/{1}", authorityUri.Host, "<Tenant-GUID>"); _app = PublicClientApplicationBuilder .Create(_appInfo.ApplicationId) .WithAuthority(authority) .WithDefaultRedirectUri() .Build(); var accounts = _app.GetAccountsAsync().GetAwaiter().GetResult(); string[] scopes = new string[] { resource.EndsWith('/') ? $"{resource}.default" : $"{resource}/.default" }; var result = _app.AcquireTokenInteractive(scopes) .WithAccount(accounts.FirstOrDefault()) .WithPrompt(Prompt.SelectAccount) .ExecuteAsync() .ConfigureAwait(false) .GetAwaiter() .GetResult(); return result.AccessToken; } }
Implementar o delegado de consentimento
Adicione uma nova classe chamada
ConsentDelegateImplementation:using Microsoft.InformationProtection; public class ConsentDelegateImplementation : IConsentDelegate { public Consent GetUserConsent(string url) { return Consent.Accept; } }
Inicializar o perfil de política e o mecanismo
Atualize
Program.cspara criar oMipContext, carregue umPolicyProfilee adicione umPolicyEngine:using Microsoft.InformationProtection; using Microsoft.InformationProtection.Policy; // Application info for Microsoft Entra app registration ApplicationInfo appInfo = new ApplicationInfo() { ApplicationId = "<application-id>", ApplicationName = "MIP SDK Policy Quickstart", ApplicationVersion = "1.0" }; // Create MipConfiguration and MipContext var mipConfiguration = new MipConfiguration(appInfo, "mip_data", LogLevel.Trace, false, CacheStorageType.OnDiskEncrypted); var mipContext = MIP.CreateMipContext(mipConfiguration); // Create auth and consent delegates var authDelegate = new AuthDelegateImplementation(appInfo); var consentDelegate = new ConsentDelegateImplementation(); // Create PolicyProfile var profileSettings = new PolicyProfileSettings(mipContext, CacheStorageType.OnDiskEncrypted); var profile = MIP.LoadPolicyProfileAsync(profileSettings).GetAwaiter().GetResult(); // Create PolicyEngine var engineSettings = new PolicyEngineSettings( id: "<user@contoso.com>", authDelegate: authDelegate, clientData: "", locale: "en-US") { Identity = new Identity("<user@contoso.com>") }; var engine = profile.AddEngineAsync(engineSettings).GetAwaiter().GetResult(); Console.WriteLine("Policy engine loaded successfully.");Compilar e testar. O aplicativo deve inicializar e conectar-se ao serviço de política.