denisenkom / go-mssqldb

Microsoft SQL server driver written in go language
BSD 3-Clause "New" or "Revised" License
1.82k stars 495 forks source link

Add AAD auth using azidentity #698

Closed shueybubbles closed 2 years ago

shueybubbles commented 2 years ago

Fixes #446. Supplants #547 and uses azidentity to acquire tokens. The basic shape of the change is the same as 547 - it creates a new azuresql driver which wraps the existing driver. The only changes required in core were to make the fedauth connector artifacts public. I am able to test it manually and with an ADO pipeline run in my organization but I don't know how to automate the E2E using the appveyor setup which is controlled by the project maintainers. @kardianos please let me know if this satisfies your wishes for protecting the core. @wrosenuance I think this keeps the spirit of your original change while updating the Azure components. I consulted with other SQL client driver owners to verify that all these authentication methods need to use the "ADAL" workflow.

The readme includes updated usage documentation.

codecov[bot] commented 2 years ago

Codecov Report

Merging #698 (fe11108) into master (191d776) will decrease coverage by 0.03%. The diff coverage is 91.66%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #698      +/-   ##
==========================================
- Coverage   71.20%   71.16%   -0.04%     
==========================================
  Files          24       24              
  Lines        5199     5199              
==========================================
- Hits         3702     3700       -2     
- Misses       1274     1275       +1     
- Partials      223      224       +1     
Impacted Files Coverage Δ
tds.go 66.33% <85.71%> (+0.36%) :arrow_up:
accesstokenconnector.go 78.57% <100.00%> (ø)
fedauth.go 71.42% <100.00%> (ø)
token.go 61.22% <0.00%> (-0.79%) :arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 191d776...fe11108. Read the comment docs.

kardianos commented 2 years ago

First glance, this looks good. Pardon the long delay. I'll try to review this today.