관리형 ID를 사용하여 AAD 보호 애플리케이션에 액세스

9820 단어
이전 게시물에서 AAD 응용 프로그램 클라이언트 ID와 비밀번호를 사용하여 AAD 보호 기능 응용 프로그램에 접근하는 방법을 설명했습니다.
함수 키보다 훨씬 안전한 AAD를 사용하여 API 노드를 보호할 수 있습니다.


그러나 앞의 장면에서 AAD 클라이언트 ID와 기밀을 안전하게 관리해야 합니다.서비스가 증가함에 따라 API도 증가하여 모든 기밀을 식별하는 것은 더욱 어려워진다.
이 경우 API/응용 프로그램이 Azure 웹 응용 프로그램, Azure 기능 또는 Azure 가상 컴퓨터에 위탁 관리된다면 위탁 관리 신분을 사용하여 걱정을 줄일 수 있습니다.
이 글은 위탁 관리 신분을 설정하고 AAD로 보호된 응용 프로그램에 접근하는 방법을 설명할 것입니다.

선결 조건


AAD, Azure 기능 및 Azure 웹 응용 프로그램의 초보자라면 먼저 강좌를 볼 수 있습니다.
  • What is Azure Active Directory?
  • Quickstart: Create an ASP.NET Core web app in Azure
  • Quickstart: Create a function in Azure using Visual Studio Code
  • SPA 장면에서 이 저장소를 확인할 수 있습니다.

    Azure 예 / ms identity javascript aspnetcore webapi


    Azure AD를 사용하여 사용자를 인증하고 보호된 ASP를 호출하는 각도 있는 단일 페이지 응용 프로그램입니다.SAL Angular v2용 NET Core 웹 API(미리보기)


    페이지 유형
    언어
    제품
    묘사
    URL 세션
    샘플
    javascript
    타자 스크립트
    C 하프
    모서리의가 있다
    dotnet 코어
    msal 각도
    microsoft identity web
    azure active directory
    이 예는 호출된 각도 단일 페이지 응용 프로그램을 보여 줍니다.SAL Angular v2의 Azure Active Directory로 보호되는 NET Core 웹 API 사용
    ms identity javascript aspnetcore webapi

    Azure AD에 대한 사용자 인증을 하고 보호된 ASP를 호출하는 각도 있는 단일 페이지 응용 프로그램입니다.NET Core web API

  • Overview
  • Scenario
  • Contents
  • Prerequisites
  • Setup
  • Registration
  • Running the sample
  • Explore the sample
  • About the code
  • Deployment
  • More information
  • Community Help and Support
  • Contributing
  • 개요


    이 예제에서는 ASP 호출과 관련된 여러 플랫폼 어플리케이션 세트를 보여 줍니다.NET Core 웹 API(TodoListAPI)는 Azure Active Directory(Azure AD)으로 보호되며 Microsoft Authentication Library for Angular (Preview)(MSAL Angular)을 사용합니다.

    스크립트


  • TodoListSPA는 MSAL-Angular을 사용하여 사용자에게 로그인합니다.
  • 그리고 이 프로그램은 Azure AD에서 로그인 사용자를 위해 access token을 가져옵니다.
  • 그리고 접근 영패 사용 권한...
  • View on GitHub

    무엇이 위탁 관리 신분입니까?


    신분 관리는 AAD의 특징이다.Azure 웹 응용 프로그램을 사용하여 AAD 보호 기능 응용 프로그램을 호출한다고 가정합니다.
    일반적으로 웹 응용 프로그램에 AAD 응용 프로그램을 만들고 access_token과 그 ID와 기밀을 가져와 기능 응용 프로그램에 접근합니다.위탁 관리 신분을 사용하면 AAD 응용 프로그램을 만들고 기밀을 관리할 필요가 없습니다.특정 서비스에서 애플리케이션을 호스팅하는 경우 AAD는 애플리케이션 ID를 관리합니다.
    위탁 관리 표지는 두 가지 유형이 있다.하나는 시스템 할당이고, 다른 하나는 사용자 할당이다.
    시스템이 분배한 위탁 관리 표지는 서비스와 표지 간의 일대일 관계입니다. 서비스에 위탁 관리 표지를 사용할 수 있습니다.이 서비스를 삭제하면 Azure 플랫폼에서 ID가 자동으로 제거됩니다.
    사용자가 할당한 관리 ID는 Azure AD 응용 프로그램과 유사합니다.관리 ID를 Azure 리소스로 만든 다음 해당 서비스에 할당합니다.이런 관계는 한 쌍이 많다. 설령 당신이 서비스를 삭제했다 하더라도, 이런 관계는 여전히 존재한다.AAD 응용 프로그램과 사용자가 분배한 위탁 관리 신분 사이의 차이점은 기밀을 관리할 필요가 없다는 데 있다.
    자세한 내용은 What are managed identities for Azure resources? 을 참조하십시오.
    위탁 관리 신분이 생기면 당신의 응용 프로그램에는 Blob 저장소, SQL 데이터베이스 등이 있습니다.Services that support managed identities for Azure resources
    본고에서 저는 시스템이 분배한 위탁 관리 신분을 사용하여 AAD로 보호된 기능 응용 프로그램에 접근합니다.

    설치 환경


    나는 위탁 관리 신분을 테스트하는 예시 프로그램을 만들었다.

    회사 명 / azure 함수python 예시


    Azure Functions v2.0 Python 예

    deploy.sh을 복제하여 실행합니다.
    the permission to create AAD App과 구독자가 있는지 확인하십시오.
    응용 프로그램에 권한을 추가하기 위해 manifest.json을 만듭니다.응용 프로그램에는 User.Read API 권한이 필요합니다.
    resourceAppId와 resourceAcces id를 확인해야 합니다.
    [
        {
            "resourceAppId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "resourceAccess": [
                {
                    "id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
                    "type": "Scope"
                }
            ]
        }
    ]
    

    테스트 관리 표식


    테스트 애플리케이션을 배포하면 웹 App /request_function에 액세스할 수 있습니다.AAD로 보호되는 기능 응용 프로그램을 호출하기 위해 호스팅 ID를 사용합니다.

    다음 단계


    SPA 장면에서 this document을 확인할 수 있습니다.
    위탁 관리 신분을 사용하면 PostgreSQL에 대해 신분 검증을 할 수 있습니다.

    좋은 웹페이지 즐겨찾기