Token AD dari Azure SQL Server Database - Django
Saya telah berhasil menyambungkan Azure SQL Server menggunakan AccessTokendi pyodbc . Di sini saya tidak menggunakan usernameatau passwordmenghubungkan database. Alih-alih itu, saya menggunakan attrs_beforeuntuk lulus token. Di sini saya membuat token secara otomatis.
Pembuatan Token:
identity_endpoint = os.environ["IDENTITY_ENDPOINT"]
identity_header = os.environ["IDENTITY_HEADER"]
def get_bearer_token(resource_uri): #Automattically token will generate
token_auth_uri = f"{identity_endpoint}?resource={resource_uri}&api-version=2019-08-01"
head_msi = {'X-IDENTITY-HEADER': identity_header}
resp = requests.get(token_auth_uri, headers=head_msi)
access_token = resp.json()['access_token']
return access_token
Koneksi Pyodbc:
accessToken = bytes(get_bearer_token("https://database.windows.net/"), 'utf-8');
exptoken = b"";
for i in accessToken:
exptoken += bytes({i});
exptoken += bytes(1);
tokenstruct = struct.pack("=i", len(exptoken)) + exptoken;
conn = pyodbc.connect(
"Driver={ODBC Driver 17 for SQL Server};Server=yoursqlserver.database.windows.net,1433;Database=dbName",
attrs_before={1256: bytearray(tokenstruct)});
Sekarang masalahnya adalah bagaimana menggunakan ini dalam kerangka Django untuk menghubungkan DB? Kami tidak dapat memiliki usernameatau passworduntuk menghubungkan database saat menggunakan token azure.
Tolong bantu saya.
Jawaban
Saya telah membuat paket baru untuk menangani fitur ini.
pip install django-mssql-azure-backend
kemudian konfigurasikan settings.py
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'mydb',
'HOST': 'myserver.database.windows.net',
'PORT': '',
'IS_AZURE_BASED_TOKEN': True
'OPTIONS': {
'driver': 'ODBC Driver 13 for SQL Server',
},
},
}
Jika Anda menggunakan server SQL lokal , gunakan konfigurasi ini.
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'mydb',
'USER': 'user@myserver',
'PASSWORD': 'password',
'HOST': 'myserver.database.windows.net',
'PORT': '',
'IS_AZURE_BASED_TOKEN': False
'OPTIONS': {
'driver': 'ODBC Driver 13 for SQL Server',
},
},
}
Tautan Git: https://github.com/shakthifuture/django-mssql-azure-backend
Jika Anda menghadapi masalah apa pun, harap laporkan bug Anda di sini .