Postupy: Použití ověřování ADALHow-to: use ADAL authentication

Ověřování pomocí Azure RMS s využitím Azure Active Directory Authentication Library (ADAL).Authentication with Azure RMS for your app using Azure Active Directory Authentication Library (ADAL).

Když si aplikaci aktualizujete, aby místo Pomocníka pro přihlášení ke službám Microsoft Online Services využívala ověřování pomocí knihovny ADAL, umožní to vašim zákazníkům:By updating your application to use ADAL authentication rather than the Microsoft Online Sign-in Assistant, you and your customers will be able to:

  • Využívat vícefaktorové ověřováníUtilize multi-factor authentication
  • Nainstalovat si klienta RMS 2.1 bez toho, aby na počítači museli mít oprávnění správceInstall the RMS 2.1 client without requiring administrative privileges to the machine
  • Certifikovat aplikaci pro Windows 10Certify your application for Windows 10

Dvě metody ověřováníTwo approaches to authentication

V tomto tématu najdete informace o těchto dvou metodách ověřování s odpovídajícími příklady kódu.This topic contains two approaches to authentication with corresponding code examples.

  • Interní ověřování: Ověřování OAuth, které se spravuje přes sadu RMS SDK.Internal authentication - OAuth authentication managed by the RMS SDK.

    Tuto metodu použijte, pokud chcete, aby v případě, že je nutné provést ověření, zobrazil klient RMS výzvu k ověření pomocí knihovny ADAL.Use this approach if you want the RMS client to display an ADAL authentication prompt when authentication is necessary. Další informace o tom, jak si nakonfigurovat aplikaci, najdete v části Interní ověřování.For details on how to configure your application, see the section, "Internal authentication".

    Poznámka

    Pokud teď vaše aplikace používá AD RMS SDK 2.1 s pomocníkem pro přihlášení, doporučujeme používat metodu interního ověřování jako cestu migrace vaší aplikace.If your application currently uses AD RMS SDK 2.1 with the sign-in assistant, we recommend that you use the internal authentication method as your application migration path.

  • Externí ověřování: Ověřování OAuth spravované vaší aplikací.External authentication - OAuth authentication managed by your application.

    Tuto metodu použijte, pokud chcete, aby vaše aplikace spravovala svoje vlastní ověřování OAuth.Use this approach if you want your application to manage its own OAuth authentication. Při použití této metody bude klient RMS v případě, že je nutné provést ověření, provádět zpětné volání definované aplikací.With this approach, the RMS client will exercise an application defined callback when authentication is necessary. Podrobný příklad najdete v tématu Externí ověřování na konci tohoto tématu.For a detailed example, see "External authentication" at the end of this topic.

    Poznámka

    Externí ověřování neznamená možnost měnit uživatele. Klient RMS vždy používá výchozího uživatele pro daného tenanta RMS.External authentication does not imply the ability to change users; the RMS client always uses the default user for a given RMS tenant.

Interní ověřováníInternal authentication

  1. Postupujte podle kroků pro konfiguraci Azure v části Konfigurace Azure RMS pro ověřování ADAL a potom se vraťte k následujícímu inicializačnímu kroku.Follow the Azure configuration steps in Configure Azure RMS for ADAL authentication then return to the following app initialization step.
  2. Teď si můžete aplikaci nakonfigurovat na používání interního ověřování přes ADAL, které zajišťuje sada RMS SDK 2.1.You are now ready to configure your application to use the internal ADAL authentication provided by the RMS SDK 2.1.

Klienta RMS nakonfigurujete tak, že přidáte volání funkce IpcSetGlobalProperty hned po volání funkce IpcInitialize.To configure you RMS client, add a call to IpcSetGlobalProperty right after calling IpcInitialize to configure the RMS client. Tady je příklad s fragmentem kódu.Use the following code snippet as an example.

  C++
  IpcInitialize();

  IPC_AAD_APPLICATION_ID applicationId = { 0 };
  applicationId.cbSize = sizeof(IPC_AAD_APPLICATION_ID);
  applicationId.wszClientId = L"GUID-provided-by-AAD-for-your-app-(no-brackets)";
  applicationId.wszRedirectUri = L"RedirectionUriWeProvidedAADForOurApp://authorize";
  HRESULT hr = IpcSetGlobalProperty(IPC_EI_APPLICATION_ID, &applicationId);
  if (FAILED(hr)) {
    //Handle the error
  }

Externí ověřováníExternal Authentication

Tento kód použijte jako příklad pro správu vlastních tokenů ověřování.Use this code as an example of how to manage your own authentication tokens. C++ extern HRESULT GetADALToken(LPVOID pContext, const IPC_NAME_VALUE_LIST& Parameters, __out wstring wstrToken) throw();C++ extern HRESULT GetADALToken(LPVOID pContext, const IPC_NAME_VALUE_LIST& Parameters, __out wstring wstrToken) throw();

  HRESULT GetLicenseKey(PCIPC_BUFFER pvLicense, __in LPVOID pContextForAdal, __out IPC_KEY_HANDLE &hKey)
  {
      IPC_OAUTH2_CALLBACK pfGetADALToken =
      [](LPVOID pvContext, PIPC_NAME_VALUE_LIST pParameters, IPC_AUTH_TOKEN_HANDLE* phAuthToken) -> HRESULT
      {
          wstring wstrToken;
          HRESULT hr = GetADALToken(pvContext, *pParameters, wstrToken);
          return SUCCEEDED(hr) ? IpcCreateOAuth2Token(wstrToken.c_str(), OUT phAuthToken) : hr;
      };

      IPC_OAUTH2_CALLBACK_INFO callbackCredentialContext =
      {
          sizeof(IPC_OAUTH2_CALLBACK_INFO),
          pfGetADALToken,
          pContextForAdal
      };

      IPC_CREDENTIAL credentialContext =
      {
          IPC_CREDENTIAL_TYPE_OAUTH2,
          NULL
      };
      credentialContext.pcOAuth2 = &callbackCredentialContext;

      IPC_PROMPT_CTX promptContext =
      {
          sizeof(IPC_PROMPT_CTX),
          NULL,
          IPC_PROMPT_FLAG_SILENT | IPC_PROMPT_FLAG_HAS_USER_CONSENT,
          NULL,
          &credentialContext
      };

      hKey = 0L;
      return IpcGetKey(pvLicense, 0, &promptContext, NULL, &hKey);
  }

KomentářeComments

Před přidáním komentáře se podívejte na naše pravidla organizace.Before commenting, we ask that you review our House rules.