[POWERSHELL] 관리자 권한 여부 조회하기
■ 관리자 권한 여부를 조회하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) |
■ 관리자 권한 여부를 조회하는 방법을 보여준다. ▶ 실행 명령
1 2 3 |
([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) |
■ get 함수의 verify 인자를 사용해 인증서 파일을 설정하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 |
import httpx response = httpx.get(url = "https:/127.0.0.1:443", verify = "./certificate.pem") print(response.status_code) |
■ get 함수의 verify 인자를 사용해 HTTPS 인증서의 검증을 무시하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 |
import httpx response = httpx.get("https://www.daum.net", verify = False) print(response.status_code) # 200 |
■ getpass 함수를 사용해 콘솔에서 패스워드를 입력받는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 |
import getpass password = getpass.getpass() print(password) """ test """ |
■ openssl 명령을 사용해 인증서 서명 요청(CSD) 파일을 생성하는 방법을 보여준다. 1. CTRL + ALT + T 키를 눌러서 [터미널]을 실행한다. 2.
■ openssl 명령을 사용해 디지털 서명을 검증하는 방법을 보여준다. 1. CTRL + ALT + T 키를 눌러서 [터미널]을 실행한다. 2. [터미널]에서 아래
■ openssl 명령을 사용해 디지털 서명하는 방법을 보여준다. 1. CTRL + ALT + T 키를 눌러서 [터미널]을 실행한다. 2. [터미널]에서 아래 명령을
■ openssl 명령을 사용해 인증서 파일을 생성하는 방법을 보여준다. 1. CTRL + ALT + T 키를 눌러서 [터미널]을 실행한다. 2. [터미널]에서 아래
■ openssl 명령을 사용해 RSA 개인키 파일을 생성하는 방법을 보여준다. 1. CTRL + ALT + T 키를 눌러서 [터미널]을 실행한다. 2. [터미널]에서
■ openssl 명령을 사용해 RSA 공개키 파일을 생성하는 방법을 보여준다. 1. CTRL + ALT + T 키를 눌러서 [터미널]을 실행한다. 2. [터미널]에서
■ CREATE ROLE … WITH LOGIN PASSWORD … 명령을 사용해 사용자를 생성하는 방법을 보여준다. ▶ 예제 코드 (SQL)
1 2 3 |
CREATE ROLE user1 WITH LOGIN PASSWORD '1234'; |
※ user1 :
■ ALTER USER … WITH … 명령을 사용해 사용자 권한을 설정하는 방법을 보여준다. ▶ 예제 코드 (SQL)
1 2 3 4 |
ALTER USER user1 WITH CREATEDB; ALTER USER user1 WITH SUPERUSER; |
■ CREATE USER … WITH PASSWORD … 명령을 사용해 사용자를 생성하는 방법을 보여준다. ▶ 예제 코드 (SQL)
1 2 3 |
CREATE USER user1 WITH PASSWORD '1234'; |
※ user1 : 사용자명
■ get 함수의 auth 인자를 사용해 다이제스트 인증 자격 증명을 제공하는 방법을 보여준다. (DigestAuth 객체 전달) ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import httpx def printResponse(title, response): print(title ) print(f" response : {response}" ) print(f" response.url : {response.url}" ) print(f" response.headers['content-type'] : {response.headers['content-type']}") print(f" response.encoding : {response.encoding}" ) print(f" response.status_code : {response.status_code}" ) #print(f" response.text : {response.text}" ) print() digestAuth = httpx.DigestAuth("user1", "1234") response = httpx.get("https://example.com", auth = digestAuth) printResponse("다이제스트 인증 자격 증명 제공하기", response) """ 다이제스트 인증 자격 증명 제공하기 response : <Response [200 OK]> response.url : https://example.com response.headers['content-type'] : text/html; charset=UTF-8 response.encoding : UTF-8 response.status_code : 200 """ |
■ get 함수의 auth 인자를 사용해 기본 인증 자격 증명을 제공하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import httpx def printResponse(title, response): print(title ) print(f" response : {response}" ) print(f" response.url : {response.url}" ) print(f" response.headers['content-type'] : {response.headers['content-type']}") print(f" response.encoding : {response.encoding}" ) print(f" response.status_code : {response.status_code}" ) #print(f" response.text : {response.text}" ) print() response = httpx.get("https://example.com", auth = ("user1", "1234")) printResponse("기본 인증 자격 증명 제공하기", response) """ 기본 인증 자격 증명 제공하기 response : <Response [200 OK]> response.url : https://example.com response.headers['content-type'] : text/html; charset=UTF-8 response.encoding : UTF-8 response.status_code : 200 """ |
■ FastAPI 클래스를 사용해 JWT 인증 애플리케이션을 만드는 방법을 보여준다. (MongoDB 연동) ▶ .env
1 2 3 4 |
DATABASE_URL=mongodb://localhost:27017/testdb SECRET_KEY=pass1234567 |
※ testdb : MongoDB 데이터베이스명 ※ pass1234567
■ HttpClient 클래스 사용시 특정 인증서 오류를 무시하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
using System.Net.Security; using(HttpClientHandler httpClientHandler = new HttpClientHandler()) { httpClientHandler.ServerCertificateCustomValidationCallback = (message, certificates, chain, sslPolicyErrors) => { if(sslPolicyErrors == SslPolicyErrors.None) { return true; } if(certificates.GetCertHashString() == "99E92D8447AEF30483B1D7527812C9B7B3A915A7") { return true; } return false; }; using(HttpClient httpClient = new HttpClient(httpClientHandler)) { HttpResponseMessage responseMessage = httpClient.GetAsync("https://example.com").Result; } } |
■ ServicePointManager 클래스의 ServerCertificateValidationCallback 속성을 사용해 특정 인증서 오류를 무시하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using System.Net; using System.Net.Security; using System.Security.Cryptography.X509Certificates; ServicePointManager.ServerCertificateValidationCallback += delegate (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { if(sslPolicyErrors == SslPolicyErrors.None) { return true; } if(certificate.GetCertHashString() == "99E92D8447AEF30483B1D7527812C9B7B3A915A7") { return true; } return false; }; |
■ 인증서를 조회하는 방법을 보여준다. ▶ 실행 명령
1 2 3 4 5 6 7 8 9 10 11 |
Set-Location Cert:\CurrentUser\My Get-ChildItem | Format-Table Subject, FriendlyName, Thumbprint 또는 CD Cert:\CurrentUser\My Get-ChildItem | Format-Table Subject, FriendlyName, Thumbprint |
■ New-SelfSignedCertificate 명령을 사용해 UWP 패키지 서명용 인증서를 만드는 방법을 보여준다. ▶ 실행 명령
1 2 3 4 5 6 7 8 9 10 11 |
$subject = "CN=icodebroker" # 게시자명 $store = "Cert:\CurrentUser\My" # 인증서 저장 경로 New-SelfSignedCertificate ` -Type Custom ` -Subject $subject ` -KeyUsage DigitalSignature ` -FriendlyName "ICODEBROKER" ` # 인증서 표시명 -CertStoreLocation $store ` -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}") |
■ passwd 명령을 사용해 로그인한 계정의 패스워드를 변경하는 방법을 보여준다. 1. CTRL + ALT + T 키를 눌러서 [터미널]을 실행한다. 2. [터미널]에서
■ BouncyCastle 누겟을 설치하는 방법을 보여준다. 1. Visual Studio를 실행한다. 2. [도구] / [NuGet 패키지 관리자] / [패키지 관리자 콘솔] 메뉴를 실행한다.
■ IFingerprint 인터페이스의 AuthenticateAsync 메소드를 사용해 지문을 인증하는 방법을 보여준다. (ANDROID) ▶ Platforms/Android/AndroidManifest.xml
1 2 3 4 5 6 7 8 |
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <application android:allowBackup="true" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true"></application> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.USE_BIOMETRIC" /> </manifest> |
▶ Platforms/Android/MainActivity.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
using Android.App; using Android.Content.PM; using Android.OS; using Plugin.Fingerprint; namespace TestProject; /// <summary> /// 메인 액티비티 /// </summary> [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)] public class MainActivity : MauiAppCompatActivity { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Protected #region 생성시 처리하기 - OnCreate(savedInstanceState) /// <summary> /// 생성시 처리하기 /// </summary> /// <param name="savedInstanceState">저장 인스턴스 상태</param> protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); CrossFingerprint.SetCurrentActivityResolver(() => this); } #endregion } |
▶ MauiProgram.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
using Plugin.Fingerprint; using Plugin.Fingerprint.Abstractions; namespace TestProject; /// <summary> /// MAUI 프로그램 /// </summary> public static class MauiProgram { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Public #region MAUI 앱 생성하기 - CreateMauiApp() /// <summary> /// MAUI 앱 생성하기 /// </summary> /// <returns>MAUI 앱</returns> public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); builder .UseMauiApp<App>() .ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf" , "OpenSansRegular" ); fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold"); } ); builder.Services.AddSingleton(typeof(IFingerprint), CrossFingerprint.Current); return builder.Build(); } #endregion } |
▶ MainPage.xaml
■ Plugin.Fingerprint 누겟을 설치하는 방법을 보여준다. 1. Visual Studio를 실행한다. 2. [도구] / [NuGet 패키지 관리자] / [패키지 관리자 콘솔] 메뉴를 실행한다.
■ cmdkey 명령을 사용해 자격 증명 조회/추가/삭제하는 방법을 보여준다. ▶ 자격 증명 조회하기
1 2 3 |
cmdkey /list |
▶ 도메인 자격 증명 만들기
1 2 3 4 5 6 |
cmdkey /add:대상이름 /user:사용자명 /pass:패스워드 cmdkey /add:대상이름 /user:사용자명 /pass cmdkey /add:대상이름 /user:사용자명 cmdkey /add:대상이름 /smartcard |
▶ 일반