ArcGIS API For Python 03-서로 다른 인증 방안 사용

ArcGIS API For Python 의GIS대상 은 몇 가지 사용자 에 대한 다양한 검증 방안 을 제공 합 니 다.
  • 익명 사용자
  • 내 장 된 사용자
  • 엔 터 프 라 이 즈 표지 저장 소
  • Web-tier authentication with LDAP
  • Portal-tier authentication with Active Directory
  • Portal-tier authentication with LDAP
  • Web-tier authentication secured with PKI
  • Web-tier authentication secured with IWA

  • OAuth 2.0 기반 사용자 인증
  • ArcGIS Pro 로 연결
  • GIS클래스 는ArcGIS Online또는ArcGIS Enterprise인 스 턴 스 에 URL 이나 사용자 증 거 를 제공 하 는 방식 으로 구축GIS대상 을 지원 합 니 다.사용자 증빙서류 내용 은 사용자 이름과 사용자 비밀 번 호 를 포함 하거나 PKI 를 사용 한 경우 키 파일/파일 인증 서 를 사용 하여 사용자 증빙서류 내용 으로 사용 할 수 있 습 니 다.
    URL 주 소 를 제공 하지 않 으 면 기본적으로 ArcGIS Online 을 사용 합 니 다.사용자 증 거 를 제공 하지 않 으 면 기본적으로 익명 사용자 로 접근 합 니 다.또한 스 크 립 트 는 ArcGIS Pro 를 통 해 Portal 에 로그 인 할 수 있 으 며 현재 활성 화 된 Portal 을 선택 합 니 다.
    익명 사용자 접근
    익명 의 사용자 로 서 이 API 에 접근 할 수 있 는 작업 이 적 습 니 다.공 유 된 지도 와 그림 을 조회 하거나 볼 수 있 지만 내용 을 만 들 거나 수정 하거나 분석 작업 을 수행 하 는 데 는 권한 이 없습니다.
  • 익명 의 사용자 로 ArcGIS Online 연결
  • print("ArcGIS Online as anonymous user")
    gis = GIS()
    print("Logged in as anonymous user to " + gis.properties.portalName)
    
  • 익명 의 사용자 로 ArcGIS Enterprise 연결
  • ArcGIS Enterprise 가 익명 사용자 접근 을 허용 하면 Enterprise 의 URL 주소 만 입력 하고 사용자 이름과 비밀 번 호 를 입력 하지 않 으 면 익명 사용자 방식 으로 Enterprise 에 연결 할 수 있 습 니 다.
    주의해 야 할 점 은 Enterprise 가 IWA 인증 을 설정 하고 Windows 시스템 에서 Enterprise 에 로그 인하 면 연결 시 자동 으로 로그 인 할 수 있 습 니 다.
    print("ArcGIS Enterprise as anonymous user")
    gis = GIS("https://singlega.jiaoxn.local/arcgis")
    print("Logged in as anonymous user to " + gis.properties.portalName)
    

    내 장 된 사용자
    ArcGIS Online 이 든 ArcGIS Enterprise 든 내 장 된 신분 저장 소 를 사용 하여 사전 설정 을 했 기 때문에 사용자 와 그룹 을 쉽게 만 들 수 있 습 니 다.이 경우 로그 인 할 때 사용자 이름과 비밀 번 호 를 제공 해 야 합 니 다.
  • 내장 사용자 로 ArcGIS Online 연결
  • print("ArcGIS Online Org account")    
    gis = GIS("https://www.arcgis.com", "arcgis_python", "P@ssword123")
    print("Logged in as " + str(gis.properties.user.username))
    
  • 내 장 된 사용자 로 Enterprise 연결
  • print("Portal for ArcGIS as a built in user")
    gis = GIS("https://portalname.domain.com/webadapter_name", "sharinguser", "password")
    print("Logged in as: " + gis.properties.user.username)
    

    엔 터 프 라 이 즈 표식 저장 소
    ArcGIS Online 과 ArcGIS Enterprise 의 디자인 은 Enterprise 계 정과 그룹 을 통 해 ArcGIS 조직 에 대한 접근 을 제어 할 수 있 습 니 다.
  • Web-tier authentication with LDAP
  • print("

    Basic Authentication with LDAP"
    ) ldapbasic = GIS("https://portalname.domain.com/webadapter_name", "amy", "password") print("Logged in as: " + ldapbasic.properties.user.username)
  • Portal-tier authentication with Active Directory

  • 현재 활성 디 렉 터 리 에서 온 Enterprise 사용자 연결 을 사용 할 때domain\\username방식 으로 사용자 이름 을 지정 합 니 다.
    print("

    Portal-tier Authentication with LDAP - enterprise user"
    ) gisldap = GIS("https://portalname.domain.com/webadapter_name", "AVWORLD\\Publisher", "password") print("Logged in as: " + gisldap.properties.user.username)
  • Portal-tier authentication with LDAP

  • LDAP 에서 온 Enterprise 사용자 계 정 으로 연결 할 때 평소 와 같이 사용자 이름과 비밀 번 호 를 지정 하면 됩 니 다.
    print("

    Portal-tier Authentication with LDAP - builtin user"
    ) gisldap = GIS("https://portalname.domain.com/webadapter_name", "sharing1", "password") print("Logged in as: " + gisldap.properties.user.username)
  • Web-tier authentication secured with PKI

  • PKI 연결 을 사용 할 때 두 가지 방법 이 있 습 니 다.하 나 는key_filecert_file을 사용 하고 다른 하 나 는pkcs12포맷 된 인증서 파일 과 비밀 번 호 를 사용 합 니 다.
    #   PEM          
    print("

    PKI with key and cert files"
    ) gis = GIS("https://portalname.domain.com/webcontext", key_file="C:\\path\\to\\key.pem", cert_file="C:\\path\\to\\cert.pem") print("Logged in as: " + gis.properties.user.username) # PKCS12 print("

    PKI with PFX file and password"
    ) gis = GIS("https://portalname.domain.com/webcontext", cert_file="C:\\path\\to\\mycert.pfx", password="secret.password") print("Logged in as: " + gis.properties.user.username)
  • Web-tier authentication secured with IWA

  • OAuth 2.0 기반 사용자 인증
    이 방식 으로 연결 하려 면 하나client.id가 필요 합 니 다.
    client id 가 져 오기
  • ArcGIS Online 또는 ArcGIS Enterprise 로그 인
  • 선택Content
  • 클릭+ Add Item,An Application버튼
  • 응용 프로그램 추가:유형Application,제목Python,라벨Python
  • 방금 만 든 응용 프로그램의 상세 한 페이지 에서 내 비게 이 션Settings
  • 페이지 아래쪽Registered Info
  • 을 클릭 하 십시오.
  • 클릭 하면 현재 페이지 에 응용 ID 가 표 시 됩 니 다.이것 이 바로 GIS 대상 을 연결 할 때 필요 한 client.id 입 니 다.

  • 이 방식 으로 연결 할 때 사용자 이름과 비밀 번 호 를 제공 하지 않 으 면 대화 형 로그 인 페이지 가 표 시 됩 니 다.로그 인 후 코드 를 얻 을 수 있 습 니 다.이 코드 가 로그 인 과정 을 마 쳤 을 때 붙 여 넣 을 수 있 습 니 다.사용자 이름과 비밀 번 호 를 제공 합 니 다.이 과정 을 차단 할 수 있 습 니 다.
    gis = GIS("https://pythonapi.playground.esri.com/portal", username="arcgis_python", password="amazing_arcgis_123",
              client_id='f8cRxbP3NO8bf9ag')
    print("Successfully logged in as: " + gis.properties.user.username)
    

    ArcGIS Pro 로 연결pro의 권한 수여 모드 를 바탕 으로 Python 코드 스 크 립 트 는 사용자 이름과 비밀 번 호 를 입력 하지 않 은 상태 에서 현재 활성 화 된 Portal 을 대표 하 는GIS클래스 인 스 턴 스 를 만 들 수 있 습 니 다.
    주의해 야 할 것 은Named User license과 같은 권한 수여 방식 으로 Pro 에 권한 을 부여 할 경우 로그 인 할 때 체크Signe me in automatically를 하지 않 았 거나 Pro 를 오프라인 으로 사용 할 수 있 도록 설정 하지 않 았 다 면 이 모드 로 연결 할 때 ArcGIS Pro 가 이 코드 를 실행 하 는 기기 에 설치 되 어 있 고 Pro 가 실행 되 고 있 는 지 확인 해 야 한 다 는 점 이다.체크Signe me in automatically하면 기본적으로 포 털 허가 만 료 전 까지 2 주 연속 ArcGIS Pro 를 닫 을 수 있다.
    print("

    Active Portal in ArcGIS Pro"
    ) gis = GIS("pro")

    보호 암호
    다른 사용자 에 게 노트북 코드 를 공유 하거나 코드 를 공공 위치 에 저장 할 때 코드 에 직접 노출 하고 싶 지 않 을 때 코드 를 입력 하지 않 아 도 된다.Python API 가 코드 를 실행 할 때 내장 모듈getpass을 호출 하여 사용자 에 게 코드 입력 을 알려 줍 니 다.다음 코드 와 같 습 니 다.
    gis = GIS("https://pythonapi.playground.esri.com/portal", username='arcgis_python')
    print("Successfully logged in as: " + gis.properties.user.username)
    
    # Output
    Enter password: ········
    Successfully logged in as: arcgis_python
    

    암 호 를 입력 하 라 고 알 릴 때 코드 는 사용자 가 정확 한 코드 를 입력 할 때 까지 실행 을 중단 합 니 다.입력 한 코드 는*번호 로 가 려 집 니 다.
    비밀 번 호 를 입력 해 야 하 는 연결 모드 에 서 는 이 모드 로 비밀 번 호 를 보호 할 수 있 습 니 다.단독 Python 스 크 립 트 에서 이 방식 을 사용 할 때 이 스 크 립 트 는 스 크 립 트 가 실 행 될 때 사용자 가 암 호 를 제공 해 야 하기 때문에 대화 식 으로 실 행 됩 니 다.
    로 컬 자격증 저장
    자주GIS인 스 턴 스 를 연결 하고 연결 인증 서 를 로 컬 에 저장 하 는 것 을 고려 하면GIS실례 화 시profile인 자 를 입력 하면 해결 할 수 있 습 니 다.GIS클래스 에 권한 수여 증 거 를 전달 하고 인증서 이름 을 지정 하면 지속 적 인 설정 파일 을 만 들 수 있 습 니 다.이 프로필 은 사용자 홈 디 렉 터 리 에서 비밀 번 호 를 제외 한 인증 증 거 를 암호 화 되 지 않 은 이름.arcgisprofile프로필 에 저장 합 니 다.자격증 은keyring모듈 을 통 해 운영 체제 의 암호 관리자 에 비밀 번 호 를 안전하게 저장 합 니 다.리 눅 스 시스템 이 라면 적절 한 안전성 을 확보 하기 위해 추가 소프트웨어 를 설치 해 야 할 수도 있 습 니 다.
    프로필 을 저장 하면 인증서 파일 을profile매개 변 수 를 통 해 전달 할 수 있 습 니 다.여러 인증서 파일 을 평행 으로 만 들 고 호출 할 수 있 습 니 다.
    #   
    playground_gis = GIS(url="https://pythonapi.playground.esri.com/portal", username='arcgis_python', password='amazing_arcgis_123',
                         profile='python_playground_prof')
    agol_gis = GIS(url="https://arcgis.com/", username='arcgis_python', password="P@ssword123",
        profile="AGOL_prof")
    print("profile defined for {}".format(playground_gis))
    print("profile defined for {}".format(agol_gis))
    
    #   
    
    def print_profile_info(gis):
        print("Successfully logged into '{}' via the '{}' user".format(
               gis.properties.portalHostname,
               gis.properties.user.username)) 
    
    playground_gis = GIS(profile='python_playground_prof')
    print_profile_info(playground_gis)
    
    agol_gis = GIS(profile="AGOL_prof")
    print_profile_info(agol_gis)
    

    영구 프로필 상세 내용
    영구 설정 파일 은 암호 화 되 지 않 은.arcgisprofile파일 에 다음GIS인자 의 임 의 조합 을 저장 합 니 다.
  • url
  • username
  • key_file
  • cert_file
  • cliend_id

  • 암 호 는keyring모듈 을 통 해 안전 한 방식 으로 저 장 됩 니 다.즉,코드 를 실행 할 때 암 호 는 운영 체제 의 암호 저장 관리자 에서 검색 된다 는 것 입 니 다.
    Windows
    Window 시스템 에서 비밀 번 호 는 Windows 증빙 관리자 에 저 장 됩 니 다.그 보기 방식 은:
    Start > Control Panel > User Accounts > Credential Manager > Windows Credentials > Generic Credentials
    

    Mac
    Mac 시스템 에서 비밀 번 호 는 Keychain Access 에 저 장 됩 니 다.보기 방식 은 다음 과 같 습 니 다.
    Applications > Utilities > Keychain Access > Passwords > "arcgis_python_api_profile_passwords"
    

    Linux
    Linux 에 서 는 영구적 인 프로필 이 있 는 암 호 를 안전하게 저장 하기 위해 다른 소프트웨어 를 설치 하고 설정 해 야 할 수도 있 습 니 다.그 배치 과정 은 다른 블 로 그 를 통 해 알 수 있다.

    좋은 웹페이지 즐겨찾기