인증 토큰 생성

이 문서에서는 서비스 주체 인증 토큰, 사용자의 인증 토큰, 사용자의 새로 고침 토큰을 생성하는 방법을 알아봅니다.

Microsoft Entra ID를 사용하여 앱 등록

  1. Azure Data Manager for Energy 플랫폼을 프로비전하려면 Azure Portal 앱 등록 페이지에서 앱을 등록해야 합니다. Microsoft 계정이나 회사 또는 학교 계정을 사용하여 앱을 등록할 수 있습니다. 구성하는 방법에 대한 단계는 앱 등록 설명서를 참조하세요.

  2. 앱 개요 섹션에서 리디렉션 URI가 지정되지 않은 경우 플랫폼 추가>을 선택하고, http://localhost:8080을 추가하고, 저장을 선택하면 됩니다.

    앱에 URI를 추가하는 방법을 보여 주는 스크린샷.

페치 매개 변수

앱이 Azure Portal에 등록된 후 매개 변수를 찾을 수도 있습니다.

테넌트 ID 찾기

  1. 조직의 Microsoft Entra 계정으로 이동합니다. Azure Portal의 검색 창에서 Microsoft Entra ID를 검색할 수 있습니다.

  2. 개요 탭의 기본 정보 섹션에서 테넌트 ID를 찾습니다.

  3. tenant-ID 값을 복사하여 나중에 사용할 편집기에 붙여넣습니다.

    Microsoft Entra ID 검색을 보여 주는 스크린샷.

    테넌트 ID 찾기를 보여 주는 스크린샷.

클라이언트 ID 찾기

client-idAzure Data Manager for Energy 인스턴스를 프로비전하는 동안 애플리케이션을 등록하는 데 사용한 것과 동일한 값입니다. 종종 app-id라고도 합니다.

  1. Azure Data Manager for Energy 개요 페이지로 이동합니다. Essentials 창에서 클라이언트 ID를 찾습니다.

  2. client-id 값을 복사하여 나중에 사용할 편집기에 붙여넣습니다.

  3. 현재 하나의 Azure Data Manager for Energy 인스턴스를 통해 하나의 app-id를 인스턴스와 연결할 수 있습니다.

    Important

    권한 API 호출에서 값으로 전달되는 client-id는 Azure Data Manager for Energy 인스턴스를 프로비전하는 데 사용한 것과 동일해야 합니다.

    등록된 앱의 클라이언트 ID를 찾는 방법을 보여 주는 스크린샷.

클라이언트 암호 찾기

client-secret는 앱에서 ID 자체에 대한 인증서 대신 사용할 수 있는 문자열 값입니다. 애플리케이션 암호라고도 합니다.

  1. 앱 등록으로 이동합니다.

  2. 관리 섹션에서 인증서 및 암호을 선택합니다.

  3. 새 클라이언트 암호를 선택하여 Azure Data Manager for Energy 인스턴스를 만드는 데 사용한 클라이언트 ID에 대한 클라이언트 암호를 만듭니다.

  4. 클라이언트 애플리케이션 코드에서 나중에 사용할 암호 을 기록합니다.

    app-idclient-secret 액세스 토큰에는 인프라 관리자가 인스턴스에 액세스할 수 있는 권한이 있습니다.

    주의

    암호의 값을 기록하는 것을 잊지 마세요. 클라이언트 암호 만들기 페이지를 나가면 이 암호 값이 다시 표시되지 않습니다.

    클라이언트 암호 찾기를 보여 주는 스크린샷.

리디렉션 URI 찾기

앱이 인증 응답을 보내고 받는 앱의 redirect-uri입니다. URL로 인코드되어야 한다는 점을 제외하고 포털에서 등록한 리디렉션 URI 중 하나와 정확히 일치해야 합니다.

  1. 앱 등록으로 이동합니다.
  2. 관리 섹션에서 인증을 선택합니다.
  3. 앱이 Microsoft Entra ID에서 응답을 받을 수 있도록 redirect-uri(또는 회신 URL)를 가져옵니다.

redirect-uri를 보여 주는 스크린샷.

Azure Data Manager for Energy 인스턴스에 대한 adme-url 찾기

  1. 위에서 만들어진 client-id를 사용하여 Azure Data Manager for Energy 인스턴스를 만듭니다.

  2. Azure Portal에서 Azure Data Manager for Energy 개요 페이지로 이동합니다.

  3. Essentials 창에서 URI를 복사합니다.

    Azure Data Manager for Energy 인스턴스에 대한 URI 찾기를 보여 주는 스크린샷.

데이터 파티션 ID 찾기

Azure Data Manager for Energy 인스턴스에서 데이터 파티션 목록을 가져오는 두 가지 방법이 있습니다.

  • 옵션 1: Azure Data Manager for Energy UI의 고급 섹션에서 데이터 파티션 메뉴 항목으로 이동합니다.

    Azure Data Manager for Energy 인스턴스에서 data-partition-id를 찾는 것을 보여 주는 스크린샷.

  • 옵션 2: Azure Data Manager for Energy 개요 페이지의 Essentials 창에서 데이터 파티션 필드 아래의 보기를 선택합니다.

    Azure Data Manager for Energy 인스턴스 개요 페이지에서 data-partition-id를 찾는 것을 보여 주는 스크린샷.

    데이터 파티션이 포함된 Azure Data Manager for Energy 인스턴스 개요 페이지에서 data-partition-id를 찾는 것을 보여 주는 스크린샷.

도메인 찾기

기본적으로 domain은 모든 Azure Data Manager for Energy 인스턴스에 대한 dataservices.energy입니다.

클라이언트 ID 인증 토큰 생성

자리 표시자 값을 이전 단계의 앞부분에서 찾은 해당 값으로 바꾼 후 Azure Cloud Bash에서 다음 curl 명령을 실행합니다. 응답의 액세스 토큰은 client-id 인증 토큰입니다.

요청 형식

curl --location --request POST 'https://login.microsoftonline.com/<tenant-id>/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'scope=<client-id>.default' \
--data-urlencode 'client_id=<client-id>' \
--data-urlencode 'client_secret=<client-secret>' \
--data-urlencode 'resource=<client-id>'

샘플 응답

    {
        "token_type": "Bearer",
        "expires_in": 86399,
        "ext_expires_in": 86399,
        "access_token": "abcdefgh123456............."
    }

사용자 인증 토큰 생성

사용자의 인증 토큰 생성은 2단계 프로세스입니다.

권한 부여 코드 가져오기

많은 OIDC(OpenID Connect) 및 OAuth 2.0 흐름에 대한 액세스 토큰을 얻는 첫 번째 단계는 사용자를 Microsoft ID 플랫폼 /authorize 엔드포인트로 리디렉션하는 것입니다. Microsoft Entra ID는 사용자를 로그인하고 앱이 요청하는 권한에 대한 동의를 요청합니다. 인증 코드 부여 흐름에서 동의를 얻은 후 Microsoft Entra ID는 액세스 토큰에 대해 Microsoft ID 플랫폼 /token 엔드포인트에서 사용할 수 있는 인증 코드를 앱에 반환합니다.

  1. 매개 변수를 사용하여 요청 형식을 준비합니다.

    https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize?client_id=<client-id>
    &response_type=code
    &redirect_uri=<redirect-uri>
    &response_mode=query
    &scope=<client-id>%2f.default&state=12345&sso_reload=true
    
  2. 매개 변수를 바꾼 후 모든 브라우저의 URL에 요청을 붙여넣고 Enter 키를 선택하면 됩니다.

  3. 아직 로그인하지 않은 경우 Azure Portal에 로그인합니다.

  4. 브라우저에 "Hmmm... 이 페이지에 연결할 수 없습니다."라는 오류 메시지가 표시되리 수 있습니다. 무시해도 됩니다.

    로컬 호스트 리디렉션 스크린샷.

  5. 인증에 성공하면 브라우저가 http://localhost:8080/?code={authorization code}&state=...로 리디렉션됩니다.

  6. 브라우저의 URL 표시줄에서 응답을 복사하고 code=&state 사이에 텍스트를 가져옵니다.

    http://localhost:8080/?code=0.BRoAv4j5cvGGr0...au78f&state=12345&session....
    
  7. 나중에 편리하게 사용할 수 있도록 이 authorization-code를 유지하세요.

    매개 변수 설명
    코드 앱이 요청한 권한 부여 코드입니다. 앱에서 권한 부여 코드를 사용하여 대상 리소스에 대한 액세스 토큰을 요청할 수 있습니다. 인증 코드는 수명이 매우 짧습니다. 일반적으로 약 10분 후에 만료됩니다.
    state state 매개 변수가 요청에 포함된 경우 동일한 값이 응답에 표시됩니다. 앱은 요청과 응답의 상태 값이 동일한지 확인해야 합니다. 이 검사는 클라이언트에 대한 CSRF 공격을 검색하는 데 도움이 됩니다.
    session_state 현재 사용자 세션을 식별하는 고유 값입니다. 이 값은 GUID이지만 검사 없이 전달되는 불투명 값으로 처리되어야 합니다.

Warning

Postman에서 URL을 실행하면 토큰 검색을 위한 추가 구성이 필요하므로 작동하지 않습니다.

인증 토큰 및 새로 고침 토큰 가져오기

두 번째 단계는 인증 토큰 및 새로 고침 토큰을 가져오는 것입니다. 앱은 이전 단계에서 받은 인증 코드를 사용하여 /token 엔드포인트에 POST 요청을 전송하여 액세스 토큰을 요청합니다.

요청 형식

  curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d 'client_id=<client-id>
  &scope=<client-id>%2f.default openid profile offline_access
  &code=<authorization-code>
  &redirect_uri=<redirect-uri>
  &grant_type=authorization_code
  &client_secret=<client-secret>' 'https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token'

샘플 응답

{
  "token_type": "Bearer",
  "scope": "User.Read profile openid email",
  "expires_in": 4557,
  "access_token": "eyJ0eXAiOiJKV1QiLCJub25jZSI6IkJuUXdJd0ZFc...",
  "refresh_token": "0.ARoAv4j5cvGGr0GRqy180BHbR8lB8cvIWGtHpawGN..."
}
매개 변수 설명
token_type 토큰 형식 값을 나타냅니다. Microsoft Entra ID가 지원하는 유일한 형식은 Bearer입니다.
scope 액세스 토큰이 유효한 Microsoft Graph 권한의 공백으로 구분된 목록입니다.
expires_in 액세스 토큰의 유효 기간(초)입니다.
access_token 요청된 액세스 토큰입니다. 앱은 이 토큰을 사용하여 Microsoft Graph를 호출할 수 있습니다.
refresh_token OAuth 2.0 새로 고침 토큰입니다. 앱은 현재 액세스 토큰이 만료된 후 이 토큰을 사용하여 추가 액세스 토큰을 가져올 수 있습니다. 새로 고침 토큰은 수명이 길며, 오랜 시간 동안 리소스에 대한 액세스를 유지하는 데 사용할 수 있습니다.

사용자 액세스 토큰을 생성하고 새로 고침 토큰을 사용하여 새 액세스 토큰을 생성하는 방법에 대한 자세한 내용은 새로 고침 토큰 생성을 참조하세요.

OSDU®는 The Open Group의 상표입니다.

다음 단계

생성된 새로 고침 토큰을 사용하는 방법에 대한 자세한 내용은 다음을 참조하세요.